Modern computer systems require ever-increasing data storage capacities. A larger data storage capacity often increases random data access times to such stored data. Such increased access times can have a substantial negative effect on computer system performance and efficiency. Data access times can be improved by introducing a hierarchical data storage organization having a large back store and a higher speed front store. Such front-store/back-store arrangements have taken several forms and may include two or more levels in the data storage hierarchy. An improvement in total system performance can arise from an organization employing a small fast data store at the highest or front storage level and slower stores of increasing size and access time at lower data storage levels in the hierarchy in a manner well-known in the art. Such hierarchical organization is useful for optimizing the capacity, speed, cost and expandability of a data store and an associated computer system.
Modern computer peripheral data stores usually require very high capacity data storage apparatus at the lowest or backing level. Many peripheral large-capacity data-storage subsystems employ a automated data storage library. An automated data storage library includes an array of media-storing compartments or slots. A media transport mechanism automatically transports addressed data-storage media between the respective library slots and any one of a plurality of data recorders or drives. Each drive usually has a capability for reading and writing on each of the storage media that is mounted in such drive. Such automated data-storage library subsystems may take any one of a large plurality of configurations and exhibit a diversity of data-access performance.
Peripheral data storage hierarchies have used automated data storage library systems with diverse types of data-storage media, such as tape cartridges of all types and optical disks (write once and re-writable optical disks). The front stores for all of such systems control demotion of data units to a back store based upon data-accessing activity relative to all of the promoted data units resident in the front store. A commonly used demotion control is the widely-used "least recently used" LRU control. Such an arrangement does not separately nor individually consider any desired or needed accessing to individual ones of the promoted data units. As such, these prior art controls do not tend to optimize each residency time of each promoted data unit in a front store. That is, LRU controls are more likely to demote a data unit before an attaching using unit has finished with such demoted data unit than is desired.
Such known automated data-storage libraries include the IBM Corporation 3850 Mass Storage Subsystem (MSS) for the storage and retrieval of magnetic tape cartridges, circa 1975. The 3850 MSS employed a magnetic tape library as a back store and an array of direct access storage devices (DASD) as a front store. The 3850 MSS employed a data unit for promotion and demotion of eight cylinders of an IBM 3330 virtual disk volume. Such data unit is hereinafter termed a "segment". Before the 3850 MSS, several automated tape libraries had been constructed and operated with limited commercial success or in governmental installations. Following the 3850 MSS, several commercial automated media libraries have been marketed using magnetic tape and optical disk media. The media transport mechanisms of these libraries can transport one or more media, usually in a cartridge. An example of optical disk media library with which the present invention is most advantageously employed are the currently marketed IBM optical library subsystems.
All of such automated library subsystems exhibit a common trait that adversely affects access times (increases access time). The mechanical movement of each data-storage medium between a respective library compartment and peripheral drive takes seconds whereas the data transfers between such peripheral drive and an attaching using unit (host processor, network and the like) is at electronic speeds. Most of electronic speeds are orders of magnitude faster than the mechanical speed of media transport. Therefore, it is desired to reduce the negative effect of such mechanical media transfers. Such reduction can be best achieved by managing the mounting and demounting of the media for reducing necessity for mounting any of the media more than once for each set of accesses by any one or more job streams in the using unit(s) in a short time period, i.e. within an order of magnitude of media transport times, viz 10-20 seconds, for example. Because of vastly different application program job streams, peripheral data storage subsystems are subjected to a wide spectrum of data access requests. Accordingly, optimal mount times (time of residence in a front store) is desired for diverse ones of the media that varies with time of day and job streams requirements that are beyond the present description.
Random data-access request streams may result in frequent undesired data unit (optical disk) demounts and mounts. Such undesired mechanical activity of media transport keeps the media transport mechanism unnecessarily busy resulting in possibly severe system performance degradation. That is, the number of media transport operations per unit of data being access can become excessive to a point that system performance is unduly degraded by waiting for media transportation to complete.
On the other hand, sequential data access requests provide, at least momentarily, a high rate of data accesses to each data unit, i.e. disk or promoted data. It is desired to keep such a data unit promoted/mounted for the duration of such sequential data accessing. If a library controller does not distinguish between random and sequential data access activity, a sequentially-accessed optical disk cartridge can be prematurely demounted in favor of a recent random access mounting request. For this reason, the above-described global criterion based demoting/demounting controls do not provide an optimal demoting/demounting control. The resultant data unit transfer activity, termed churning, unnecessarily increases data transfer workload reducing data access efficiency. It is desired to accommodate the above-described situation.
In a multi-level data storage hierarchy, data are promoted to diverse levels depending on the current(within a range of time measured in seconds, for example) job stream data access requirements and patterns. Such access times in the diverse levels can also have negative effects on total computer system performance. Therefore, it is desired to provide for improved data residency controls at all levels of the hierarchical data-storing structure.
Peripheral data-storage subsystems for the past several years often include electronic random-access cache memories for temporarily storing data to enhance access to data. Many known data promotion and demotion methods and apparatus control storage of data in a peripheral cache. It is also desired to provide an enhanced cache control method and apparatus that relies on individual access patterns to data units stored in a cache. Data units in a cache can be minimum allocation spaces, as will become apparent.
The term promote or promoting data units includes any action that moves a data unit, and some or all of its data, in any form to a higher level of the storage hierarchy. Such copying or moving may bypass a level of a storage hierarchy. In some data storage hierarchies, such bypassing is not a part of the hierarchy design. The term demote or demoting means any action for moving a data unit (and its contained data) from a given level to a lower level of a data storage hierarchy. Moving a data storage medium (a form of a data unit) from a library storage compartment for mounting on a media drive is promoting data recorded on the medium to the drive level of a data storage hierarchy. Demounting a storage medium from a media drive is demoting that data unit to a library cartridge storage compartment. Similarly, electronically copying data from a data unit (an addressable portion of a data storage medium) to a cache from a data storage medium mounted in a media drive is a promotion of such data unit. Such data unit promotion provides a copy of the data in such promoted data unit in both the front and back stores. Copying data stored in a cache to a mounted storage medium in a media drive without removing the data unit from a cache does not change the promoted status of the data of the cache resident data unit. A demotion of a cache resident data unit to a mounted storage medium results in the data of the data unit being removed from the cache. A copy of the data in such demoted data unit is stored in the mounted storage medium. The term "data unit" is used herein to indicate an addressable data storage unit (virtual or real medium, area of a RAM, and the like) for storing data. By way of example, data units include disks, each data recording surface of a disk, magnetic tape, virtual volumes of all types, disk tracks, disk cylinders and groups of all of the above. A data unit need not be filled with data. The data unit is promoted that carries or promotes the contained data. A data unit can be promoted even though empty. Also, in general, the data capacity or size of a data unit being electronically promoted is smaller than the data capacity or logical size of a data unit being moved.
In accordance with all of the above it is desired to provide apparatus and methods for optimizing time that a data unit is promoted to a front store. Such optimization should include criteria based upon data accessing to each promoted data unit independently of data accessing to other promoted data units. Such apparatus and methods can provide controls to ascertain a best or optimal front store resident time after which each individual promoted data unit can be demoted. Before such optimal time, such data unit is not to be demoted unless explicitly commanded to do so.
In both cache front stores and media drive front stores, data units promoted to a front Store are automatically selectively demoted to a back store. In the case of an automated library, disk/tape media are automatically demounted. Such demounting/demoting controls have generally used a so-called global criteria that indicates relative data-accessing activity of all promoted data units relative to each other. The individual activities of the promoted data units with respect to their own respective needs is not considered. A commonly used demoting control is the above-discussed and well known least recently used (LRU) control. This algorithm demotes data units before data-accessing to such demoted data unit may have been completed. Such pre-mature demotion results in undesired and unwanted data unit demotion and promotion activity in a data storage hierarchy.
Another criterion used for automatically controlling data unit demotion is of least recently mounted (LRM), i.e. the data unit that was first promoted/mounted to a front store is the first to be demoted/demounted. Such data unit demotion control may also result in a premature demotion. Significant unnecessary data access delays can result. Such data-access delays not only included re-promoting/remounting the data unit, but also prioritizing such re-promoting/remounting with unrelated data promoting and media mounting. The character of this problem varies dynamically with current job stream requirements, such as whether the data access requests are primarily sequential (e.g., batch transfers) or random (such as experienced in a system intended to emulate a randomly addressed and accessed store, such as disk data storage units).
It is desired, for enhancing hierarchial data storage performance, to avoid the above-mentioned global limitation of selecting demoting(demounting) data units. Such a desired data storage hierarchy includes individual or local demotion criteria relating only to each promoted data unit independently of applying such individual or local criteria to any other promoted data unit. Such a desired demotion control system whether or not each data unit should be demoted or demounted initially based on current system accessing patterns of that individual data unit, i.e. data units eligible for demotion. Once that local criteria are met, then sequencing the demotion of eligible promoted data units ensues.